﻿Imports DTO
Imports BUS
Public Class MH_TiepNhanHocSinh
    Private Sub FormTiepNhanHocSinh_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cboGioiTinh.SelectedIndex = 0
        dtpNgaySinh.Value = DateTime.Now

    End Sub

    Private Sub btnDong_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDong.Click
        Me.Close()
    End Sub

    'Ham kiem tra nhap dung qui dinh
    Private Function KiemTra() As String
        Dim strError As String = ""
        'kiem tra ten ko dc bo trong()
        If (txtTenHocSinh.Text.Trim = "") Then
            strError += "Tên học sinh không dc bỏ trống"
            strError += vbNewLine
        Else
            'neu da nhap ten hoc sinh
            Dim ten As String = txtTenHocSinh.Text
            'neu nhap vao chi co 1 ky tu
            If (ten.Length = 1) Then
                strError += "Tên không hợp lệ "
                strError += vbNewLine
            End If
            'tat ca phai la chu
            For i As Integer = 0 To ten.Length - 2
                If (Not Char.IsLetter(ten(i)) And ten(i) <> " ") Then
                    strError += "Tên không hợp lệ "
                    strError += vbNewLine
                    Exit For
                End If
                ' dau va cuoi ko co khoang trang
                If ((i = 0 And ten(i) = " ") Or (i = ten.Length And ten(i) = " ")) Then
                    strError += "Tên không hợp lệ "
                    strError += vbNewLine
                    Exit For
                End If
                'sau khoang trang phai viet hoa hoac chu cai dau tien phai viet hoa
                If ((ten(i) = " " And Not (Char.IsUpper(ten(i + 1))) Or (Not (Char.IsUpper(ten(i))) And i = 0))) Then
                    strError += "Tên không hợp lệ "
                    strError += vbNewLine
                    Exit For
                End If
                'nhung chu con lai phai la chu thuong
            Next

            For i As Integer = 0 To ten.Length - 2
                If (Char.IsUpper(ten(i)) And Char.IsLower(ten(i)) And ten(i + 1) <> " ") Then
                    If (Not (Char.IsLower(ten(i + 1)))) Then
                        strError += "Tên không hợp lệ "
                        strError += vbNewLine
                        Exit For
                    End If
                End If
            Next

            If (ten.IndexOf("  ") > 0) Then
                strError += "Tên có chứa 2 khoảng trắng liên tiếp nhau "
                strError += vbNewLine
            End If
        End If

        'kiem tra no da chon Gioi tinh chua
        If (cboGioiTinh.Text = "") Then
            strError += "Bạn chưa chọn giới tính"
            strError += vbNewLine
        End If

        'kiem tra no da nhap dia chi chua
        If (txtDiaChi.Text = "") Then
            strError += "Bạn chưa điền địa chỉ"
            strError += vbNewLine
        End If

        'neu chua nhap email
        Dim email As String = txtEmail.Text
        If (email = "") Then
            strError += "Email không được bỏ trống"
            strError += vbNewLine
        Else
            'neu co email, kiem tra email 
            'cat email va gan vao 1 mang bien str
            Dim str As String()

            Try
                str = email.Split("@")
                'ko co dang a@b.c
                If (str(1).IndexOf(".") < 1) Then
                    strError += "Email sai qui dinh"
                    strError += vbNewLine
                End If
                'neu mang co nho hon 3 phan tu
                If (str.Length < 2) Then
                    strError += "Email sai qui dinh"
                    strError += vbNewLine
                End If

                'email chi dc la chu hoac la so
                For i As Integer = 0 To str.Length - 1
                    For j As Integer = 0 To str(i).Length - 1
                        If (Not (Char.IsLetterOrDigit(str(i)(j)))) Then
                            If (Not (str(i)(j) = ".")) Then
                                strError += "Email chỉ dc chứa chữ và số"
                            End If
                        End If
                    Next
                Next

                Dim flag As Boolean = True
                While flag
                    Try
                        str = str(1).Split(".")
                        For i As Integer = 0 To str.Length - 1
                            For j As Integer = 0 To str(i).Length - 1
                                If (Not (Char.IsLetterOrDigit(str(i)(j)) And Not (str(i)(j) = "."))) Then
                                    strError += "Email chỉ dc chứa chữ và số"
                                End If
                            Next
                        Next
                    Catch ex As Exception
                        flag = False
                    End Try
                End While
            Catch ex As Exception
                strError += "Email sai qui dinh"
                strError += vbNewLine
            End Try

        End If



        Return strError
    End Function

    Private Sub btnTiepNhan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTiepNhan.Click

        Dim kt As String
        kt = KiemTra()
        MessageBox.Show(kt)
        Return
        Dim hs As New HocSinhDTO
        hs.HoTen = txtTenHocSinh.Text
        hs.GioiTinh = cboGioiTinh.Text
        hs.NgaySinh = dtpNgaySinh.Value
        hs.Email = txtEmail.Text
        hs.DiaChi = txtDiaChi.Text
        'hs.MaLop = 0

        'Goi ham BUS
        Dim bus As New HocSinhBUS
        Dim kq As Integer = bus.ThemHocSinh(hs)

        'Neu them thanh cong
        If (kq) Then
            MessageBox.Show("Thêm thành công")
        Else
            MessageBox.Show("Thêm thất bại")
        End If

    End Sub
End Class
